package br.com.jmmarca.modelo.dao;

import java.util.List;

import br.com.jmmarca.modelo.entidade.Cidade;
import br.com.jmmarca.modelo.generic.AbstractDAO;

public class CidadeDAO extends AbstractDAO<Cidade> {

    private static CidadeDAO instance;

    private CidadeDAO() {
        super(Cidade.class);
    }

    public static CidadeDAO getInstance() {
        if (instance == null) {
            instance = new CidadeDAO();
        }
        return instance;
    }

    public Cidade encontrarPorDescricaoEUf(String nome, String uf) {
        try {
            return (Cidade) getEntityManager().createQuery("Select c from Cidade c where c.descricao = :cidadeNome and c.estado.uf = :uf").setParameter("cidadeNome", nome).setParameter("uf", uf).getSingleResult();
        } catch (Exception ex) {
            return null;
        }

    }
    public List<Cidade> listarPorUf(String uf) {
    	try {
    		return (List<Cidade>) getEntityManager().createQuery("Select c from Cidade c where c.estado.uf = :uf").setParameter("uf", uf).getResultList();
    	} catch (Exception ex) {
    		return null;
    	}
    	
    }
}
